// 这个文件包含需要替换到supermarket_management.cpp中的修复代码
// 使用方法：将下面的代码段替换到主文件对应的有问题的部分

// 1. 替换menu函数和work函数
void menu(){
    int choice;  //记录用户输入
    int flag;    //记录文件写入函数返回值
    while(1){
        system("cls");
        printf("\n欢迎使用超市管理系统\n");
        printf("\n1、商品信息入库\n");
        printf("\n2、商品信息删除\n");
        printf("\n3、商品信息修改\n");
        printf("\n4、商品信息查询\n");
        printf("\n5、商品信息浏览\n");
        printf("\n6、系统颜色设置\n");
        printf("\n7、应用程序退出\n");
        printf("\n8、保存信息至文件\n");
        printf("\n请输入您的选择（1-8）:");
        scanf("%d",&choice);
        if(choice == 7){
            break;
        }
        switch(choice){
            case 1:input_good();
                break;
            case 2:delete_id();
                break;
            case 3:modify_id();
                break;
            case 4:select_id();
                break;
            case 5:output_good();
                break;
            case 6:printf("\n系统颜色设置\n");
                break;
            case 8:flag = output_file();
                if (flag == 0){
                    printf("商品信息写入good_data.bin成功! \n");
                }
                break;
            default:
                printf("\n输入值有误，不在1-8！\n");
        }
        getch();
    }
}

// 2. 修复库存管理菜单函数
void work() {
    printf("\n===== 库存管理系统 =====\n");
    printf("1. 库存信息管理（查看/修改）\n");
    printf("2. 入库管理\n");
    printf("3. 出库管理\n");
    printf("4. 库存盘点\n");
    printf("5. 库存控制（设置阈值/预警）\n");
    printf("0. 退出系统\n");
    printf("请选择操作：");
}

// 3. 修复manage_inventory函数
void manage_inventory() {
    char choice;
    printf("\n--- 商品入库 ---\n");
    
    while(1) {
        struct StockItem newItem;
        printf("输入商品编号：");
        scanf("%s", newItem.id);
        
        // 检查编号重复
        if (find_item(newItem.id) != -1) {
            printf("编号已存在！请重新输入\n");
            continue;
        }
        
        printf("输入商品名称：");
        scanf("%s", newItem.name);
        printf("输入类别：");
        scanf("%s", newItem.category);
        printf("输入入库数量：");
        scanf("%d", &newItem.quantity);
        printf("输入单价：");
        scanf("%lf", &newItem.price);
        newItem.threshold = 50; // 默认阈值设为50（可在库存控制中修改）
        
        stock[count++] = newItem;
        printf("\n入库成功！当前库存数量：%d\n", newItem.quantity);
        
        // 询问是否继续
        printf("继续入库？(Y/N)：");
        scanf(" %c", &choice);
        if (choice != 'Y' && choice != 'y') break;
    }
}

// 4. 确保销售管理系统使用salesMainMenu而不是mainMenu
void salesMainMenu() {
    printf("\n===== 销售管理系统 =====\n");
    printf("1. 客户管理\n");
    printf("2. 销售计划制定\n");
    printf("3. 销售渠道管理\n");
    printf("4. 销售活动管理\n");
    printf("5. 销售业绩评估\n");
    printf("0. 退出系统\n");
    printf("请选择操作：");
}

// 5. 修复会员管理系统菜单函数
void memberMainMenu() {
    printf("\n===== 会员管理系统 =====\n");
    printf("1. 会员信息管理\n");
    printf("2. 会员等级管理\n");
    printf("3. 会员积分管理\n");
    printf("4. 会员销售与关怀\n");
    printf("5. 会员数据分析\n");
    printf("0. 退出系统\n");
    printf("请选择操作：");
}

// 6. 修复员工管理系统菜单函数
void employeeMainMenu() {
    printf("\n===== 员工管理系统 =====\n");
    printf("1. 员工招聘与入职\n");
    printf("2. 员工培训与发展\n");
    printf("3. 绩效管理\n");
    printf("4. 薪酬与福利管理\n");
    printf("0. 退出系统\n");
    printf("请选择操作：");
}

// 7. 修复重复的memberInfoManagement函数
void memberInfoManagementFixed() {
    int choice;
    printf("\n--- 会员信息管理 ---\n");
    printf("1. 新增会员\n");
    printf("2. 查看所有会员\n");
    printf("3. 修改会员信息\n");
    printf("0. 返回上级\n");
    scanf("%d", &choice);
    
    if (choice == 1) {
        if (memberCount >= 100) { 
            printf("会员数量已满！"); 
            return; 
        }
        struct Member m;
        char *generatedId = generateMemberId();
        strcpy(m.id, generatedId);
        free(generatedId);
        
        printf("输入姓名："); 
        scanf("%s", m.name);
        printf("输入手机号（唯一标识）："); 
        scanf("%s", m.phone);
        
        // 检查手机号重复
        int i;
        for (i = 0; i < memberCount; i++) {
            if (strcmp(members[i].phone, m.phone) == 0) {
                printf("手机号已注册！");
                return;
            }
        }
        
        m.points = 0; // 新会员初始积分为0
        time_t now = time(0);
        struct tm *ltm = localtime(&now);
        sprintf(m.regDate, "%d-%02d-%02d",
               1900+ltm->tm_year, 1+ltm->tm_mon, ltm->tm_mday);
        updateMemberLevel(&m); // 初始化等级
        members[memberCount++] = m;
        printf("会员新增成功！编号：%s\n", m.id);
    }
}

// 8. 销售系统主函数修复
int saleFixed() {
    int choice;
    do {
        salesMainMenu();
        scanf("%d", &choice);
        switch (choice) {
            case 1: customerManagement(); break;
            case 2: salesPlanManagement(); break;
            case 3: channelManagement(); break;
            case 4: activityManagement(); break;
            case 5: performanceEvaluation(); break;
            case 0: printf("退出销售管理系统！\n"); break;
            default: printf("无效选择！请重新输入\n");
        }
    } while (choice != 0);
    return 0;
}

// 9. 会员系统主函数修复
int funtionFixed() {
    int choice;
    do {
        memberMainMenu();
        scanf("%d", &choice);
        switch (choice) {
            case 1: memberInfoManagement(); break;
            case 2: memberLevelManagement(); break;
            case 3: pointsManagement(); break;
            case 4: memberCare(); break;
            case 5: dataAnalysis(); break;
            case 0: printf("退出会员管理系统！\n"); break;
            default: printf("无效选择！请重新输入\n");
        }
    } while (choice != 0);
    return 0;
}

// 10. 员工系统主函数修复
int minmainFixed() {
    int choice;
    do {
        employeeMainMenu();
        scanf("%d", &choice);
        switch (choice) {
            case 1: recruitmentAndOnboarding(); break;
            case 2: trainingAndDevelopment(); break;
            case 3: performanceManagement(); break;
            case 4: salaryAndBenefits(); break;
            case 0: printf("退出员工管理系统！\n"); break;
            default: printf("无效选择！请重新输入\n");
        }
    } while (choice != 0);
    return 0;
}

// 11. 集成修复的主函数
int main() {
    // 显示欢迎信息
    welcome();
    
    int choice;
    do {
        printf("\n========== 超市管理系统 ==========\n");
        printf("1. 商品基本管理\n");
        printf("2. 库存管理系统\n");
        printf("3. 销售管理系统\n");
        printf("4. 会员管理系统\n");
        printf("5. 员工管理系统\n");
        printf("0. 退出系统\n");
        printf("请选择要进入的子系统: ");
        scanf("%d", &choice);
        
        switch(choice) {
            case 1:
                menu(); // 商品基本管理
                break;
            case 2:
                main_stock(); // 库存管理
                break;
            case 3:
                sale(); // 销售管理
                break;
            case 4:
                funtion(); // 会员管理
                break;
            case 5:
                minmain(); // 员工管理
                break;
            case 0:
                printf("感谢使用超市管理系统！再见！\n");
                break;
            default:
                printf("无效选择，请重新输入!\n");
        }
    } while(choice != 0);
    
    return 0;
} 